package com.feicheng;

public class BitwiseComparison {

    public static String mixBits(String s1, String s2) {
        // 检查输入是否合法
        if (s1 == null || s2 == null || s1.length() != s2.length()) {
            throw new IllegalArgumentException("输入字符串不能为 null，且长度必须相同");
        }

        // 用于存储结果的 StringBuilder
        StringBuilder result = new StringBuilder();

        // 遍历每一位
        for (int i = 0; i < s1.length(); i++) {
            char c1 = s1.charAt(i);
            char c2 = s2.charAt(i);

            // 检查字符是否为 '0' 或 '1'
            if (c1 != '0' && c1 != '1' || c2 != '0' && c2 != '1') {
                throw new IllegalArgumentException("输入字符串的每一位只能是 '0' 或 '1'");
            }

            // 按位比较，如果都是 '1'，则结果为 '1'，否则为 '0'
            if (c1 == '1' || c2 == '1') {
                result.append('1');
            } else {
                result.append('0');
            }
        }

        return result.toString();
    }

    public static String compareBits(String s1, String s2) {
        // 检查输入是否合法
        if (s1 == null || s2 == null || s1.length() != s2.length()) {
            throw new IllegalArgumentException("输入字符串不能为 null，且长度必须相同");
        }

        // 用于存储结果的 StringBuilder
        StringBuilder result = new StringBuilder();

        // 遍历每一位
        for (int i = 0; i < s1.length(); i++) {
            char c1 = s1.charAt(i);
            char c2 = s2.charAt(i);

            // 检查字符是否为 '0' 或 '1'
            if (c1 != '0' && c1 != '1' || c2 != '0' && c2 != '1') {
                throw new IllegalArgumentException("输入字符串的每一位只能是 '0' 或 '1'");
            }

            // 按位比较，如果都是 '1'，则结果为 '1'，否则为 '0'
            if (c1 == '1' && c2 == '1') {
                result.append('1');
            } else {
                result.append('0');
            }
        }

        return result.toString();
    }

    public static void main(String[] args) {
        String s1 = "101010";
        String s2 = "110011";

        String result = compareBits(s1, s2);
        System.out.println("比较结果: " + result); // 输出: 100010
    }
}
